﻿#define _CRT_SECURE_NO_WARNINGS 1 
#include<stdio.h>
//int main()
//{
//	int n = 9;
//	float* pFloat = (float*)&n;
//	printf("n的值为：%d\n", n);
//	printf("*pFloat的值为：%f\n", *pFloat);
//	*pFloat = 9.0;
//	printf("num的值为：%d\n", n);
//	printf("*pFloat的值为：%f\n", *pFloat);
//	return 0;
//}

//结构体的声明和创建以及初始化
//struct Book
//{
//	char name[20];//书名
//	char author[20];//作者
//	float price;//价格
//	char id[13];//书号
//};
//
//
//int main()
//{
//	struct Book b1 = { "鹏哥C语言","鹏哥",18.8,"PG10001" };
//	struct Book b2 = { .id = "PG10002",.author = "鹏哥",.name = "C语言程序设计",.price = 88.8 };
//}


//struct
//{
//	char c;
//	int i;
//	double d;
//}s;
//
//struct
//{
//	char c;
//	int i;
//	double d;
//}* ps;
//
//int main()
//{
//	ps = &s;
//	return 0;
//}


//typedef struct
//{
//	int date;//存放一个整数
//	struct Node* n;//下一个节点
//}Node;
//
//
//int main()
//{
//	struct Node n1;
//	Node n2;
//	return 0;
//}

//struct S
//{
//	char c1;
//	int i;
//	char c2;
//};
//
//int main()
//{
//	struct S s = { 0 };
//	printf("%zd\n", sizeof(s));
//
//	return 0;
//}

//struct S2
//{
//	char c1;
//	char c2;
//	int i;
//};
//
//int main()
//{
//	struct S2 s2 = { 0 };
//	printf("%zd\n", sizeof(s2));
//	return 0;
//}

//struct S3
//{
//	double d;
//	char c;
//	int i;
//};
//
//int main()
//{
//	struct S3 s3 = { 0 };
//	printf("%zd\n", sizeof(s3));
//
//	return 0;
//}

//struct S3
//{
//	double d;
//	char c;
//	int i;
//};
//struct S4
//{
//	char c1;
//	struct S3 s3;
//	double d;
//};
//
//int main()
//{
//	struct S4 s4 = { 0 };
//	printf("%zd\n", sizeof(s4));
//
//	return 0;
//}

//举例
//struct S 
//{
//	char c;
//	int i;
//};

//#pragma pack(1)
//struct S
//{
//	char c1;
//	int i;
//	char c2;
//};
//#pragma pack()
//
//int main()
//{
//	printf("%zd\n", sizeof(struct S));
//}

//struct S
//{
//	int arr[1000];
//	int n;
//	double d;
//};
//
//void print2(const struct S* ps)
//{
//	int i = 0;
//	for (i = 0; i < 5; i++)
//	{
//		printf("%d ", ps->arr[i]);
//	}
//	printf("%d ", ps->n);
//	printf("%lf ", ps->d);
//}
//
//int main()
//{
//	struct S s = { {1,2,3,4,5},100,3.14 };
//	print2(&s);
//	return 0;
//}

//位段式的结构
//struct S
//{
//	int _a : 2;
//	int _b : 5;
//	int _c : 10;
//	int _d : 30;
//};
//
//int main()
//{
//	printf("%zd\n", sizeof(struct S));
//	return 0;
//}

//struct S
//{
//	char a : 3;
//	char b : 4;
//	char c : 5;
//	char d : 4;
//};
//
//int main()
//{
//	struct S s = { 0 };
//	s.a = 10;
//	s.b = 12;
//	s.c = 3;
//	s.d = 4;
//	printf("%zd\n", sizeof(s));
//	return 0;
//}

//
//struct A
//{
//	int _a : 2;
//	int _b : 5;
//	int _c : 10;
//	int _d : 30;
//};
//int main()
//{
//	struct A sa = { 0 };
//	scanf("%d", &(sa._b));//这是错误的
//	//正确的⽰范
//	int b = 0;
//	scanf("%d", &b);
//	sa._b = b;
//	return 0;
//}